package com.wh.base.sys.user.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wh.base.sys.user.entity.User;

/**
 * <p>
 * 系统用户 服务类
 * </p>
 *
 * @author WangHong
 * @since 2022-03-28
 */
public interface UserService extends IService<User> {
	
	/**用户状态: 正常*/
	public static final String USER_STATUS_NORMAL = "0";
	
	/**用户状态: 停用*/
	public static final String USER_STATUS_DISABLE = "1";
	
	/**
	 * 处理用户信息, 比如过滤密码等, 只返回需要的信息
	 * @param user
	 * @return
	 */
	public Map<String, String> simpleUser(User user);
	
	/**
	 * 根据用户id获取用户所有权限
	 * @param userId
	 * @return
	 */
	public Set<String> getAuthSignListByUserId(long userId);
	
	/**
	 * 根据用户id获取用户所有权限, 以map形式返回
	 * @param userId
	 * @return
	 */
	public Map<String, String> getAuthSignMapByUserId(long userId);
	
	/**
	 * 根据用户id获取用户所有角色
	 * @param userId
	 * @return
	 */
	public List<String> getRoleListByUserId(long userId);
	
	/**
	 * 获取当前登录的用户
	 * @return
	 */
	public User getUser();
	
	/**
	 * 设置用户角色
	 * @return
	 */
	User handleRoleList(User user);
	
	/**
	 * 设置用户角色
	 * @param page
	 * @return
	 */
	Page handlePageRoleList(Page page);
	
	/**
	 * 设置用户角色
	 * @param userList
	 * @return
	 */
	List<User> handleListRoleList(List<User> userList);

}
